package field

import "gitee.com/yanwc/net/utils"

type (
	Hdop    float32
	HdopRaw [2]byte // 水平精度因子(0-9999) 单位:0.01
)

const (
	HdopUnit  float64 = 0.01
	HdopRatio float32 = 100
)

func (h Hdop) Raw() (out HdopRaw) {
	v := uint16(h * Hdop(HdopRatio))
	copy(out[:], utils.NumberToBytesWithBigEndian(v))
	return
}

func (h HdopRaw) Type() Hdop {
	f := float64(utils.BytesToNumber[uint16](h[:])) * HdopUnit
	return Hdop(utils.Decimal(f, 2))
}

func (h HdopRaw) Slice() []byte {
	return h[:]
}
